package config

import "os"

func Write(path string) error {
	// 默认配置文件
	config := []byte(
		`# ================ 极简自动化任务配置 ================
# 使用说明：只需填写下方带 ➤ 符号的字段即可运行
# 注意事项：
#   1. YAML使用2空格缩进（不要用TAB键）
#   2. 带#的行是注释说明（不会被执行）
#   3. 保存后运行命令：automate run 本文件名.yaml

# ================== 全局默认设置 ==================
global:
	# ➤ 所有主机的默认登录用户名（可在主机中单独覆盖）
	user: "admin"
	
	# ➤ 所有主机的默认登录密码（优先使用密钥认证）
	password: ""  # 示例: "P@ssw0rd123"
	
	# ➤ SSH连接端口（默认22）
	port: 22
	
	# 高级设置（保持默认即可）
	timeout: 30    # 连接超时(秒)
	log_level: "INFO"  # 日志详细程度: DEBUG/INFO/ERROR

# ================== 主机列表配置 ==================
hosts:
	# ▼▼▼ 复制此区块添加更多主机 ▼▼▼
	- # ➤ 主机显示名称（用于日志）
	name: "Web服务器01"
	
	# ➤ 主机地址（IP或域名）
	address: "192.168.1.100"
	
	# ➤ 登录凭证（留空使用全局设置）
	# user: "custom_user"
	# password: "server_password"
	# port: 2222

	# ▼▼▼ 第二个主机示例 ▼▼▼
	- name: "数据库服务器"
	address: "10.0.0.50"
	# ➤ 使用密钥登录（优先于密码）
	# ssh_key: "~/.ssh/db_key"

# ================== 任务流程配置 ==================
tasks:
	# ▼▼▼ 基础任务模板（复制修改）▼▼▼
	清理临时文件:  # ➤ 任务名称（将显示在日志中）
	desc: "删除7天前的临时文件"  # ➤ 任务描述（可选）
	
	# ➤ 要执行的命令（支持多行）
	command: |
		find /tmp -type f -mtime +7 -delete
		echo "已清理 $(find /tmp -type f | wc -l) 个文件"
	
	# ➤ 目标主机（填写hosts中的name）
	target: "Web服务器01"  # 或 ["Web服务器01", "数据库服务器"]
	
	# 高级设置（保持默认即可）
	# timeout: 300  # 任务超时(秒)
	# retry: 1      # 失败重试次数

	# ▼▼▼ 多步骤任务示例 ▼▼▼
	网站备份部署:
	desc: "完整更新流程"
	steps:  # ➤ 步骤列表（按顺序执行）
		- name: "备份网站"
		command: "tar -zcf /backups/web-$(date +%F).tar.gz /var/www"
		target: "Web服务器01"
		
		- name: "拉取新代码"
		command: "git pull origin main"
		work_dir: "/var/www"  # ➤ 指定工作目录
		
		- name: "重启服务"
		command: "systemctl restart nginx"

# =============== 首次使用测试任务 ================
# 取消下面三行的#注释即可运行测试
# 测试连接:
#   command: "echo '成功连接到主机: $(hostname)'"
#   target: all  # 所有主机`,
	)

	// path 是
	err := os.WriteFile(path, config, 0644)

	return err
}
